"""
循环经济经济价值分析模块
"""
import json
import os

class EconomicAnalyzer:
    def __init__(self):
        # 从JSON文件加载产品数据
        self.product_data = self._load_product_data()
    
    def _load_product_data(self):
        """加载产品数据"""
        data_path = os.path.join(os.path.dirname(__file__), 'data', 'products.json')
        try:
            with open(data_path, 'r', encoding='utf-8') as f:
                data = json.load(f)
                return {p['type']: p for p in data['products']}
        except Exception as e:
            raise ValueError(f"无法加载产品数据: {str(e)}")
    
    def calculate_value(self, product_type, quantity, age=1):
        """
        计算回收产品的经济价值
        参数:
            product_type: 产品类型
            quantity: 数量
            age: 使用年限(年)
        返回:
            字典包含各项经济指标
        """
        if product_type not in self.product_data:
            supported = ", ".join(self.product_data.keys())
            raise ValueError(f"不支持的产品类型: {product_type}。支持的类型有: {supported}")
            
        product = self.product_data[product_type]
        base_value = product['base_value']
        depreciation = product['depreciation_rate']
        
        # 计算单件回收价值（考虑折旧）
        unit_value = base_value * (1 - depreciation) ** age
        
        # 计算总价值
        total_value = unit_value * quantity
        
        # 计算成本节约（考虑产品寿命）
        lifespan = product.get('lifespan_years', 1)
        cost_saving = base_value * quantity * (age / lifespan) * 0.3
        
        return {
            '产品类型': product_type,
            '数量': quantity,
            '单件回收价值(元)': round(unit_value, 2),
            '总回收价值(元)': round(total_value, 2),
            '预估成本节约(元)': round(cost_saving, 2),
            '使用年限(年)': age
        }